package com.lushuan.ch11_springboot_test.demo.basic;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class TryWithResourceExample {

    public static void main(String[] args) {
        tryWithResourceDemo();

        tryFinallyExample();
    }


    public static void tryWithResourceDemo() {
        // 文件路径
        String filePath = "example.txt";
        // 这种方式不仅简洁，而且减少了忘记关闭资源的风险。

        // 使用 try-with-resources 语句确保 BufferedReader 自动关闭
        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            String line;
            // 逐行读取文件内容直到文件尾部
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            // 处理可能发生的 IO 异常
            e.printStackTrace();
        }
    }


    public static void tryFinallyExample() {
        BufferedReader reader = null;
        try {
            // 尝试打开文件
            reader = new BufferedReader(new FileReader("example.txt"));
            String line;
            // 读取文件内容直到结束
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            // 处理可能发生的 IO 异常
            e.printStackTrace();
        } finally {
            // 确保资源被关闭
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}
